package com.neouton.crm.pm.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.neouton.common.entity.BaseEntityVO;
import com.neouton.crm.approval.entity.ApprovalVO;
import com.neouton.crm.sales.entity.SalesFileRelationVO;
import lombok.Data;

import java.io.Serializable;
import java.sql.Timestamp;
import java.util.List;

@Data
public class BillingApplyVo extends BaseEntityVO implements Serializable {
    /**
     * 开票id
     */
    private Integer billingRecordId;
    /**
     * 项目id
     */
    private Integer projectManageId;
    /**
     * 项目名称
     */
    private String projectTheme;
    /**
     * 合同id
     */
    private Integer contractId;
    /**
     * 开票内容
     */
    private String billingContent;
    /**
     * 开票公司
     */
    private Integer billingCompany;
    /**
     * 开票公司名称
     */
    private String billingCompanyName;
    /**
     * 开票日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Timestamp billingDate;

    private String billingDateStr;
    /**
     * 期次
     */
    private List<Integer> period;

    private String periodStr;
    /**
     * 票据类型
     */
    private Integer billType;
    /**
     * 票据类型name
     */
    private String billTypeName;
    /**
     * 发票号码
     */
    private String billNumber;
    /**
     * 票据金额
     */
    private String billMoney;

    private String billMoneyPage;

    private List<Integer> billMoneyList;
    /**
     * 是否含税
     */
    private Integer isTax;
    /**
     * 是否含税名称
     */
    private String isTaxName;
    /**
     * 税率
     */
    private String taxRate;
    /**
     * 备注
     */
    private String remarks;
    /**
     * 税金
     */
    private String taxMoney;
    private String taxMoneyPage;
    /**
     * 是否回款
     */
    private Integer isBm;
    /**
     * 是否回款名称
     */
    private String isBmName;
    /**
     * 经手人
     */
    private Integer liableId;

    private String liableName;

    private String account;
    /**
     * 审批状态：0 申请  1申请通过
     */
    private Integer state;
    /**
     *类别： 0 开票申请 1 开票记录
     */
    private Integer billState;
    /**
     * 附件
     */
    private List<SalesFileRelationVO> salesFileRelations;
    /**
     * 审批表主键ID
     */
    private Integer approvalId;
    /**
     * 合同名称
     */
    private String contractTopic;
    /**
     * 审批主键表
     */
    private Integer approvalStatus;

    /**
     * 审批状态名称
     */
    private String approvalStatusName;


    private List<Integer> taxRateList;

    private List<Integer> taxMoneyList;

    /**
     * 合同甲方名称
     */
    private String enterpriseName;
    /**
     *申请原因
     */
    private String askReason;
    /**
     *审批原因
     */
    private String opinion;

    /**
     * 合同甲方
     */
    private String  contractLessorName;

    private String paramsType;

    private List<Integer> approvalIdList;

    /**
     *开票名称
     */
    private String billName;
    /**
     * 申请人
     */
    private Integer applicant;
    /**
     * 申请时间
     */
    private Timestamp applyTime;
    /**
     * 下一处理人
     */
    private Integer nextApprover;
    /**
     * 编号
     */
    private String approvalCode;

    /**
     * 转发人员集合
     */
    private List<Integer> senderList;
    /**
     * 转发人员集合
     */
    private Integer billId;

    /**
     * 开票记录（列表状态显示）
     */
    private Integer recordType;

    private List<BackBillingMoneyVo> backBillingMoneyVos;

    private Integer projectPrincipal;

    private String dateOption;

}
